package BinaryTreeExer;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-07-20
 * Time: 13:57
 */

/**
 * 翻转二叉树:

 * 给你一棵二叉树的根节点 root ，翻转这棵二叉树，并返回其根节点。
 *
 *
 *
 * 示例 1：
 *
 *
 *
 * 输入：root = [4,2,7,1,3,6,9]
 * 输出：[4,7,2,9,6,3,1]
 * 示例 2：
 *
 *
 *
 * 输入：root = [2,1,3]
 * 输出：[2,3,1]
 * 示例 3：
 *
 * 输入：root = []
 * 输出：[]
 */

public class BinaryTreeExercise3 {

    static class TreeNode {
       public int val;
       public TreeNode left;
       public TreeNode right;

        TreeNode() {}
        TreeNode(int val) { this.val = val; }
        TreeNode(int val, BinaryTreeExercise2.TreeNode left, BinaryTreeExercise2.TreeNode right) {
            this.val = val;
        }
    }


    public TreeNode invertTree(TreeNode root) {
        if(root == null) {
            return null;
        }

        TreeNode tmp = root.left;
        root.left = root.right;
        root.right = tmp;

        //递归前序遍历
        invertTree(root.left);
        invertTree(root.right);

        return root;
    }
}
